iT邦幫忙

2023 iThome 鐵人賽

DAY 8
0
SideProject30

Java Spring + Vue 甘苦學習路 前後端分離之 Blog 實戰系列 第 8

Day 8 Java Spring API 建立 — 更新 Post 的 API

  • 分享至 

  • xImage
  •  

概述

在介紹完如何新增、取得資料後,這邊會介紹如何更新資料數據,更新的方式首先是要抓取想要更新的資料是哪一個,可以使用 id 的方式去確定要抓取的資料內容。

Service 層

處理資料邏輯,與 Entity 以及 DTO 資料進行串接轉換。首先要先取得「要更新的 id」,再來處理更新

  1. PostService.java 這個 Interface 中,可以先建立一個初始的 Constractor,如下:
PostDto updatePost(PostDto postDto, long id);
  1. PostServiceImpl.java 中則可以新增 updatePost() 這個 function
@Override
    public PostDto updatePost(PostDto postDto, long id) {
        Post post = postRepository.findById(id).orElseThrow(()->new ResourceNotFoundException("Post","id",id));
        post.setTitle(postDto.getTitle());
        post.setDescription(postDto.getDescription());
        post.setContent(postDto.getContent());

        Post updatedPost = postRepository.save(post);
        
        return mapToDTO(updatedPost);
    }

Controller 層

API 路徑的處理與設定,但這邊使用的 annotation 是 @PostMapping

@PostMapping
    // update post by id
    public ResponseEntity<PostDto> updatePost(@RequestBody PostDto postDto, @PathVariable(name="id") long id){
        PostDto postResponse = postService.updatePost(postDto, id);
        return new ResponseEntity<>(postResponse,HttpStatus.OK);
    }

API Test

http://localhost:8080/api/posts/1

選用 PUT method,Test 的地方選用 JSON 格式

在區塊中貼上要更新的 id 內容,內容則是愈更新的資料,以 JSON 的方式呈現,按下 Send 後就可以將資料更新到想要的 id 內容中了~

今天的 API 建置就先實做到這邊啦~ 發現實作的流程及方式大同小異,但可以透過不同功能的 API 建置來更熟悉開發流程。下一篇會實作另一個常見的處理功能 - Delete 刪除。有興趣繼續熟悉做法的夥伴們記得來看喔~

此外,若文中有錯誤之處還請多多包涵與指正,也歡迎在文章下方留言一起討論喔!

明天見~


上一篇
Day 7 Java Spring API 建立 — 根據 id 撈出文章功能
下一篇
Day 9 Java Spring API 建立 — 根據 id 刪除文章
系列文
Java Spring + Vue 甘苦學習路 前後端分離之 Blog 實戰30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言